package dpll.fnc;

import dpll.ast.IASTNode;
import dpll.ast.NodoBiCondicion;
import dpll.ast.NodoBooleano;
import dpll.ast.NodoCondicion;
import dpll.ast.NodoConjuncion;
import dpll.ast.NodoDisyuncion;
import dpll.ast.NodoFormula;
import dpll.ast.NodoFormulas;
import dpll.ast.NodoLiteral;
import dpll.ast.NodoNegacion;
import dpll.ast.NodoParentesis;
import dpll.ast.NodoTerminoFinal;

public interface IVisitor<T>{
	
	public T visit(IASTNode node);
	
	public T visitFormulas(NodoFormulas node);
	
	public T visitFormula(NodoFormula node);
	
	public T visitParentesis(NodoParentesis node);
	
	public T visitNegacion(NodoNegacion node);
	
	public T visitConjuncion(NodoConjuncion node);
	
	public T visitDisyuncion(NodoDisyuncion node);
	
	public T visitCondicion(NodoCondicion node);
	
	public T visitBiCondicion(NodoBiCondicion node);
	
	public T visitTerminoFinal(NodoTerminoFinal node);
	
	public T visitBooleano(NodoBooleano node);
	
	public T visitLiteral(NodoLiteral node);
	
	public boolean isCambio();
	
	public void setCambio(boolean cambio);
	
	
	
	
	
}
